$fn=100;

cylDia=5;
cylHeight=9;
cylSolidPart=3;
coneDia1=16;
coneDia2=cylDia;
coneHeight=15;
coneWall=0.5;
dartDia=2.0;
meltClearence=0.2;
//////////////////////////////////////////////////////////////////////////////////////////////
// main
union()
{
    makeCone();
    makeCylinder();
}

//////////////////////////////////////////////////////////////////////////////////////////////
// make cone that catches the air
module makeCone()
{
    translate([0,0,coneHeight/2])
    difference()
    {
    cylinder(h=coneHeight, r1=coneDia1/2, r2=coneDia2/2, center=true);
    cylinder(h=coneHeight+0.2, r1=(coneDia1/2-coneWall), r2=(coneDia2/2-coneWall), center=true);
    }
}

//////////////////////////////////////////////////////////////////////////////////////////////
// make cylinder that holds the dart
module makeCylinder()
{
    translate([0,0,coneHeight+cylHeight/2-0.1])
    difference()
    {
    cylinder(h=cylHeight, r1=cylDia/2, r2=cylDia/2, center=true);
    translate([0,0,(cylHeight-cylSolidPart)/2+0.1])
    cylinder(h=cylHeight-cylSolidPart, r1=dartDia/2-meltClearence, r2=dartDia/2, center=true);
    }
}
